package models

import "gorm.io/gorm"

type Video struct {
	gorm.Model
	Id     int    `json:"id"`
	Title  string `json:"title"`
	Author string `json:"author"`
	Cate   string `json:"cate"`
}

func Add(video *Video) error {
	err = DB.Create(video).Error
	if err != nil {
		return err
	} else {
		return nil
	}
}

// 视频分页
func Page(page, pageSize int) ([]Video, int64, error) {
	//page当前页面  pageSize 每页显示数量
	var videos []Video
	var count int64

	// 计算总数
	err = DB.Model(&Video{}).Count(&count).Error
	if err != nil {
		return nil, 0, err
	}
	// 查询分页数据
	err = DB.Model(&Video{}).Offset((page - 1) * pageSize).Limit(pageSize).Find(&videos).Error
	if err != nil {
		return nil, 0, err
	}
	return videos, count, nil
}

// 删除
func Del(id int) error {
	var n *Video
	err = DB.Where("id=?", id).Delete(&n).Error
	if err != nil {
		return err
	} else {
		return nil
	}
}

// 展示
func List() ([]*Video, error) {
	var video []*Video
	err = DB.Find(&video).Error
	if err != nil {
		return nil, err
	} else {
		return video, nil
	}
}
